package com.ruoyi.zcxt.mapper;

import java.util.List;

import com.ruoyi.zcxt.domain.ZcClassify;
import org.apache.ibatis.annotations.Param;

/**
 * 资产分类（树）Mapper接口
 * 
 * @author ruoyi
 * @date 2024-01-06
 */
public interface ZcClassifyMapper 
{
    /**
     * 查询资产分类（树）
     * 
     * @param cfId 资产分类（树）主键
     * @return 资产分类（树）
     */
    public ZcClassify selectZcClassifyByCfId(Long cfId);

    /**
     * 查询资产分类（树）列表
     * 
     * @param zcClassify 资产分类（树）
     * @return 资产分类（树）集合
     */
    public List<ZcClassify> selectZcClassifyList(ZcClassify zcClassify);

    /**
     * 新增资产分类（树）
     * 
     * @param zcClassify 资产分类（树）
     * @return 结果
     */
    public int insertZcClassify(ZcClassify zcClassify);

    /**
     * 修改资产分类（树）
     * 
     * @param zcClassify 资产分类（树）
     * @return 结果
     */
    public int updateZcClassify(ZcClassify zcClassify);

    /**
     * 删除资产分类（树）
     * 
     * @param cfId 资产分类（树）主键
     * @return 结果
     */
    public int deleteZcClassifyByCfId(Long cfId);

    /**
     * 批量删除资产分类（树）
     * 
     * @param cfIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteZcClassifyByCfIds(Long[] cfIds);

    /**
     * 根据ID查询所有子分类（正常状态）
     *
     * @param cfId 分类ID
     * @return 子分类门数
     */
    public int selectNormalChildrenCfById(Long cfId);

    /**
     *
     * @param cfId
     * @return
     */
    public List<ZcClassify> selectChildrenClassifyByCfId(Long cfId);

    public int updateZcClassifyChildren(@Param("classifies") List<ZcClassify> classifies);

    /**
     * 修改所在分类正常状态
     *
     * @param cfIds
     */
    public void updateZcClassifyStatusNormal(Long[] cfIds);
}
